'''
建立一个列表类BigList, 储存整型列表数据, 不能有重复的值
方法: size() 返回列表的长度
      add() 添加一个值, 如果有重复就不添加
      remove() 删除一个值,传参: 元素的值, 返回True/False
      peek() 返回列表最大元素
      pop()  删除列表最大元素并返回该值
2021-8-14 Nasa
'''


class BigList:
    def __init__(self, blist=[]):
        self.blist = blist
        self.size = len(blist)

    def size(self):
        return self.size

    def add(self, n):
        if n in self.blist:
            print('重复,不能添加')
        else:
            self.blist.append(n)
            self.size += 1

    def remove(self, n):
        if n in self.blist:
            self.blist.remove(n)
            self.size -= 1
            return True
        return False

    def peek(self):
        tmax = max(self.blist)
        return tmax

    def pop(self):
        tmax = max(self.blist)
        self.blist.remove(tmax)
        self.size -= 1
        return tmax

    def __repr__(self):
        return f'blist:{self.blist},size:{self.size}'


if __name__ == '__main__':
    def main():
        my_list = BigList()
        print(my_list.remove(2))
        my_list.add(1)
        my_list.add(1)
        print(my_list)
        my_list.add(10)
        my_list.add(5)
        print(my_list.peek())
        print(my_list.pop())
        print(my_list.peek())


    main()
